package com.woniuxy.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.woniuxy.entity.OrderRun;
import com.woniuxy.entity.DTO.OrderRunQueryDTO;
import com.woniuxy.util.PageResult;
import java.util.List;
import java.util.Map;

/**
 * @Author pml
 * @Date 2025/7/16 19:27
 * @Description TODO
 * 跑腿订单服务接口
 * 定义订单相关的业务方法
 * 继承IService获得基本CRUD操作，扩展自定义业务方法
 */
public interface IOrderRunService extends IService<OrderRun> {
    /**
     * 分页多条件查询订单列表
     * @param queryDTO 查询条件和分页参数
     * @return 分页结果对象，包含订单列表和分页信息
     */
    PageResult<OrderRun> getOrderRunList(OrderRunQueryDTO queryDTO);

    /**
     * 批量更新订单状态
     * @param ids 订单ID列表
     * @param status 目标状态
     * @return 是否更新成功
     */
    boolean batchUpdateStatus(List<Integer> ids, Integer status);

    /**
     * 获取订单状态分布统计
     * @return 状态统计Map，key为状态码，value为数量
     */
    Map<Integer, Integer> getOrderStatusDistribution();

    /**
     * 获取总订单数
     * @return 订单总数
     */
    Long getTotalOrderCount();
}